Hitherto, a check of database consistency has been performed by comparing a storage address of each segment contained in a database with each pointer value contained in the database. Such a consistency check is implemented and employed in, for example, a database management system developed by the assignee of this application (see, IMS High Performance Pointer Checker User's Guide, which may be viewed on the World Wide Web page at URL publibfi.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/fabp1 b10/ CONTENTS.
In the above-described consistency check, if the database is updated before completion of reading out all of pointers, an accurate check would not be performed because addresses are compared with pointers which includes both pre-update and post-update pointers. Accordingly, it has been common to halt updating a database or to perform exclusive access control for at least a part of the database during the consistency check processing (see, for example, Japanese Patent Application Publication No. 8-249222).
However, when the data size of the database is large, the update is halted for a vast amount of time or the update is significantly delayed, which may reduce user's convenience. Accordingly, there have been suggested techniques for checking the consistency without halting the update (see, Japanese Unexamined Patent Patent Application Publication No. 2001-142765 and Japanese Unexamined Patent Application Publication No. 2006-139619).
Meanwhile, when a database grows large, a problem regarding a longer retrieval time occurs in addition to the above-described problem regarding the update. However, this can be solved by indexing. For example, information Management System (IMS) provides by International Business Machines Corporation (IBM), which is a hierarchical database, realizes the indexing by providing an index database storing indexes to data segments in addition to a main database storing the data segments.
Each index includes a pointer that points a storage address of the corresponding data segment in the main database and a key value used for retrieving. From a standpoint of database consistency, the consistency also needs to be checked regularly regarding the pointers and the key values included in these indexes. Desirably, such an index consistency check is also executed online, that is, without halting update of a database.